DX | 27-07-2026 | Release | CLI-Plugins Beta - #313
Conversation
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
# Conflicts: # .talismanrc
The assets/folders list responses cap their count field at 10,000,
which silently truncated exports of spaces with more than 10k items.
Pagination is now driven by the dedicated count endpoint
(GET /api/bff/spaces/{uid}/assets/count, is_dir toggle for folders):
- paginate() takes a required caller-resolved total (single flow, no
fallback to the capped response count)
- getAssetsCount/getFoldersCount fail the export when the exact total
is unavailable (paginating blind means silent data loss)
- permanently failed pages no longer vanish: streamWorkspaceAssets
returns { streamed, missing } and missing records surface as
failedAssets in the export global summary (previously hardcoded 0)
- spaces/fields/asset_types resolve totals via a limit=1 probe
- remove dead buffered getWorkspaceAssets (zero callers, unbounded
memory once the 10k cap is gone)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…m API cap (DX-9732)
CS Assets bulk delete/move sent the entire asset array in one POST, so any
request over 100 items failed with HTTP 422 "Assets cannot exceed the max
limit of 100." — blocking bulk deletes of >100 assets entirely.
- CSAssetsAdapter.bulkDeleteAssets/bulkMoveAssets now split the payload into
<=100-item batches (CS_ASSETS_BULK_MUTATE_MAX_ITEMS) dispatched with bounded
concurrency (makeConcurrentCall) and per-batch retry (429/5xx; 4xx not retried).
- Continue-on-partial-failure: failed batches are collected, not rethrown, since
each request commits independently. Aggregate carries job_ids, batch counts,
and per-batch failures (with the failed uids).
- postJson throws a typed CsAssetsPostError carrying HTTP status (no error-string
parsing).
- Runner reports partial outcomes, writes failed uids to a {"uids":[...]} file in
the bulk-operation log folder for re-run via --asset-uids-file, and states that
a submitted delete job is submission (not completion) since delete is async.
Tests: adapter chunking/partial-failure/uid-capture; runner partial-failure file write.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
back merge
feat: enhance AM with asset publishing
fix: add global fields FVRs in export
…lish call sites
- operation-executor.ts: addHeader('api_version', '3.2') on entry and asset instances before SINGLE-mode publish/unpublish
- base-class.ts: replace conditional stackHeaders mutation in publish-assets with unconditional addHeader; add addHeader to publish-entries chain
- create-stack.ts: add api_version: '3.2' to scheduleEntryAction axios headers (raw-axios path, no SDK)
- assets.ts: remove now-dead additionalInfo: { api_version: '3.2' } — base-class owns the header unconditionally
- .talismanrc: whitelist create-stack.ts false-positive (api_key: apiKey is a variable ref, not a secret)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
api_version 3.2 is now hardcoded via addHeader() at the call site (DX-9754) so the flag is no longer needed on bulk-entries. - bulk-entries.ts: remove --api-version flag registration - messages/index.ts: remove API_VERSION constant (TAXONOMY_API_VERSION kept for bulk-taxonomies which still exposes the flag) - config-builder.ts: make apiVersion conditional on flag presence so the validateConfig() check only fires when bulk-taxonomies provides the flag - bulk-entries.test.ts: remove test asserting api-version flag presence - config-builder.test.ts: update default-values expectation to apiVersion: undefined Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…der on publish/unpublish
addHeader() was missing from the sinon mock causing 15 test failures after
DX-9754 introduced .addHeader('api_version', '3.2') calls in the executor.
- Add addHeader: sandbox.stub().returnsThis() to mockStack so the SDK
chaining resolves correctly
- Assert addHeader('api_version', '3.2') is called in all four cases:
entry publish, entry unpublish, asset publish, asset unpublish
Result: 839 passing, 0 failing (was 824 passing, 15 failing)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…triggers false positive)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…X-9770] Fix toolchain/config/stale-fixture drift (Node 24, ESLint 10, ts-node/mocha) that broke unit suites across several packages -- these were tooling issues, not product bugs: - import: add missing test/tsconfig.json (pretest TS5057) -- 1726 passing - branches: fix test/tsconfig (TS6059), auth-stub command tests, regenerate stale diff/merge fixtures, stub process.exit in collectMergeSettings -- 123 passing - seed: rewrite suite against current SDK/HttpClient impl + resolveJsonModule -- 33 passing - external-migrate: fix 16 lint errors (ignore lib/, idiomatic rule options, optional catch bindings) -- lint clean, 42 passing - variants: fix ESM/JSON toolchain, fancy/spy test harness, auth stubs, mock config -- 32/38 passing (6 known-remaining, see ticket) - root: add lint script consistent with cli No product/runtime source changed except 3 behavior-preserving catch bindings in external-migrate. The ESLint flat-config migration (~10 packages) and the 6 remaining variants integration failures are tracked as out-of-scope follow-ups. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NbgqgVDTDmh6c9LwDtMEf9
…validation Taxonomy: - Drop --api-version flag from bulk-taxonomies; api_version 3.2 is now hardcoded via addHeader() on the taxonomy SDK instance, matching the same per-call pattern used for entries and assets - Remove DEFAULT_TAXONOMY_API_VERSION constant and apiVersion param chain from TaxonomyService — branch is now the direct second param - Remove TAXONOMY_API_VERSION message constant include-variants: - Remove broken validation that blocked --include-variants whenever --api-version was absent; the guard is redundant now that 3.2 is hardcoded on both BULK and SINGLE paths config-builder: - Remove dead api-version flag validation from validateCommandFlags - Remove dead config.apiVersion validation from validateConfig - Remove the conditional apiVersion spread from buildConfig Tests updated to assert addHeader behaviour and drop variant/api-version coupling tests. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…sets and publish-entries
addHeader was missing from the asset and entry stubs in the import
base-class test, causing both publish cases to throw at runtime after
DX-9754 added .addHeader('api_version', '3.2') to the SDK call chain.
- Add addHeader: sinon.stub().returnsThis() to asset() and entry() mocks
- Assert addHeader('api_version', '3.2') is called before publish in
both the publish-assets and publish-entries test cases
Result: 1719 passing, 0 failing (was 1717 passing, 2 failing)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
feat: integrate asset count API for exact pagination totals (DX-9336)
🔒 Security Scan Results
⏱️ SLA Breach Summary
ℹ️ Vulnerabilities Without Available Fixes (Informational Only)The following vulnerabilities were detected but do not have fixes available (no upgrade or patch). These are excluded from failure thresholds:
Consider reviewing these vulnerabilities when fixes become available. |
fix(bulk-operations): chunk CS Assets bulk delete/move to the 100-item API cap (DX-9732)
🔒 Security Scan Results
⏱️ SLA Breach Summary
ℹ️ Vulnerabilities Without Available Fixes (Informational Only)The following vulnerabilities were detected but do not have fixes available (no upgrade or patch). These are excluded from failure thresholds:
Consider reviewing these vulnerabilities when fixes become available. |
feat(DX-9341): add oauth support in AM
🔒 Security Scan Results
⏱️ SLA Breach Summary
ℹ️ Vulnerabilities Without Available Fixes (Informational Only)The following vulnerabilities were detected but do not have fixes available (no upgrade or patch). These are excluded from failure thresholds:
Consider reviewing these vulnerabilities when fixes become available. |
fix: resolve package root by directory depth in clone command
🔒 Security Scan Results
⏱️ SLA Breach Summary
ℹ️ Vulnerabilities Without Available Fixes (Informational Only)The following vulnerabilities were detected but do not have fixes available (no upgrade or patch). These are excluded from failure thresholds:
Consider reviewing these vulnerabilities when fixes become available. |
fix(export): AM 2.0 export under management token — detect via plan-check, skip assets + loud warn (DX-9314)
🔒 Security Scan Results
⏱️ SLA Breach Summary
ℹ️ Vulnerabilities Without Available Fixes (Informational Only)The following vulnerabilities were detected but do not have fixes available (no upgrade or patch). These are excluded from failure thresholds:
Consider reviewing these vulnerabilities when fixes become available. |
🔒 Security Scan Results
⏱️ SLA Breach Summary
ℹ️ Vulnerabilities Without Available Fixes (Informational Only)The following vulnerabilities were detected but do not have fixes available (no upgrade or patch). These are excluded from failure thresholds:
Consider reviewing these vulnerabilities when fixes become available. |
No description provided.